//
// Created by lingzhitech on 25-9-26.
//


#include <iostream>

int main() {
    int n = 3;

    auto f = [n]() mutable -> bool {
        if (n > 0) --n;
        return n == 0;
    };

    std::cout << f() << std::endl; // n=2, 返回 false
    std::cout << n << std::endl;
    std::cout << f() << std::endl; // n=1, 返回 false
    std::cout << n << std::endl;
    std::cout << f() << std::endl; // n=0, 返回 true
    std::cout << n << std::endl;
    std::cout << f() << std::endl; // n=0, 返回 true (不会再减了)
    std::cout << n << std::endl;
}
